package com.cs.beneficios.web.action;

import com.cs.beneficios.business.entity.BeneficiarioDAO;
import com.cs.beneficios.business.entity.BeneficioDAO;
//import com.cs.beneficios.business.entity.SedeDAO;
import com.cs.beneficios.business.entity.SubProgramaDAO;
//import com.cs.beneficios.business.model.SubProgramaVO;
import com.cs.beneficios.common.ConnectionFactory;
import com.cs.paoyer.administration.business.model.UserVO;

import java.io.IOException;

import java.sql.SQLException;

//import java.util.Collection;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

public class ValidarEliminarBOTAction extends Action {
    /**This is the main action called from the Struts framework.
     * @param mapping The ActionMapping used to select this instance.
     * @param form The optional ActionForm bean for this request.
     * @param request The HTTP Request we are processing.
     * @param response The HTTP Response we are processing.
     */
    public ActionForward execute(ActionMapping mapping, ActionForm form, 
                                 HttpServletRequest request, 
                                 HttpServletResponse response) throws IOException, 
                                                                      ServletException {
                                                                      
        //ConnectionFactory cf = new ConnectionFactory("beneficios","beneficios");
		ConnectionFactory cf = new ConnectionFactory();
        
        HttpSession session = request.getSession();
        UserVO user = (UserVO)session.getAttribute("userInfo");
        String codeBOT = request.getParameter("codeBot");
        
        SubProgramaDAO subproDAO = new SubProgramaDAO(cf);
        BeneficiarioDAO beneDAO = new BeneficiarioDAO(cf);
        
        String codeBeneficio = null;
        String codeBeneficiario = null;

        try {
            codeBeneficio = subproDAO.getCodeSubBOT(codeBOT);
            codeBeneficiario = beneDAO.getCodeBenBOT(codeBOT);
            
            if(codeBeneficio != null){
                request.setAttribute("codbene",codeBeneficio); 
            }
            if(codeBeneficiario != null){
                request.setAttribute("code", codeBeneficiario);
            }
        } catch (SQLException e) {
			System.err.println("/******** TDSUB - cwsub");
			e.printStackTrace();
			System.err.println("TDSUB - cwsub ********/");
        }

        try
        {
          BeneficioDAO beneficioDAO = new BeneficioDAO(cf);
          boolean permiso = beneficioDAO.ValidateDeleteBOT(user.getUserGroupName(),user.getName(), codeBOT);
          cf.closeConnection(subproDAO.getConn());
          
          if(!permiso){
                request.setAttribute("msg","No tiene permisos para eliminar el beneficio otorgado");
                return mapping.findForward("fail");
          } else {
                return mapping.findForward("success"); 
          }
        }catch(SQLException e)
        {
			System.err.println("/******** TDSUB - cwsub");
			e.printStackTrace();
			System.err.println("TDSUB - cwsub ********/");
        }
        
        return mapping.findForward("success");
    }
}
